<?php
/**
 * Created by b17
 * 2/14/12 9:23 PM
 */

class Admin_PagesController extends G4T_TreeController
{

    public function indexAction()
    {
        $pages = $this->manager->getTreeList();
        $this->view->pages = $pages;
    }

    /**
     * Возвращает менеджер для работы с сущностью.
     *
     * @return \Managers\CrudManager
     */
    protected function getManager()
    {
        return new \Managers\Pages();
    }

    /**
     * Возвращает строителя форм для создания форм.
     * @return \G4T\Form\FormBuilder
     */
    protected function createFormBuilder()
    {
        $formBuilder = \G4T\Form\FormBuilder::createFormBuilder(\Managers\Pages::TABLE)
            ->addField('title', 'string', array('label' => 'Title', 'class' => 'text-input medium-input'))
            ->addField('content', 'text', array('label' => 'Content'))
            ->addField('parent', 'hidden', array('required' => false))
            ->addField('sumbit', 'submit', array('label' => "Save", 'class' => 'btn btn-primary'));;
        return $formBuilder;
    }

    /**
     * Переход при не найденой сущности.
     * @param $id
     */
    protected function redirectWhenNotFound($id = null)
    {
        $this->_flashMessenger->addMessage('Page not found.', Lib_Flash::ERROR, Lib_Flash::LATER);
        $this->_redirect('/admin/pages');
    }

    /**
     * Переход при успешном изменении объекта.
     * @param $entity
     */
    protected function redirectWhenSuccess($entity = null)
    {
        $this->_flashMessenger->addMessage('Page successfully saved.', Lib_Flash::NOTICE, Lib_Flash::LATER);
        $this->_redirect('/admin/pages');
    }

    protected function getDefaultValues()
    {
        return array('parent' => $this->_getParam('parent'));
    }
}
